home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Almathera Ten Pack 2: CDPD 1
/
Almathera Ten on Ten - Disc 2: CDPD 1.iso
/
pd
/
376-400
/
400
/
reqlib
/
customizefile.asm
< prev
next >
Wrap
Assembly Source File
|
1995-03-14
|
3KB
|
97 lines
; Written by Bruce Dawson, Copyright (c) 1989.
;
; This program and source may be freely distributed as long as
; credit to the original author is left in the source and documentation
; accompanying the executable. This program may be modified for your own
; purposes.
;
;
; This program is designed to an example of how you can customize
; the req.library file requester (or any of the other requesters) to suit
; your own personal tastes. This program is designed to be used by people
; who USE programs that use the file requester, not people who WRITE
; programs that use the file requester. This program patches into all calls
; to the file requester and modifies the requester structure, without
; telling the calling program.
; Note that this program opens the requester library but never
; closes it. This is necessary if the patch is to stay in effect. This
; does, however, mean that the requester library can not be flushed out of
; memory. In addition, this program must stay in memory forever. To
; conserve memory, it would be wise to run this program with as small a
; stack as possible.
; This technique of patching the requester library could be used to
; patch other functions in the requester library also. Have fun customizing
; your system, while still using a 'standard' file requester.
include "libraries/reqbase.i"
SYS MACRO
XREF _LVO\1
JSR _LVO\1(A6)
ENDM
dseg
_ReqBase DC.L 0
OldLocation DC.L 0
reqname DC.B "req.library",0
cseg
MOVE.L 4,A6 ;Load SysBase.
LEA reqname,A1
MOVEQ #0,D0
SYS OpenLibrary
MOVE.L D0,_ReqBase
BEQ ErrorOpeningReqBase
MOVE.L D0,A1
LEA FileRequesterPatchFunction,A0
MOVE.L A0,D0
MOVE.L #_LVOFileRequester,A0
SYS SetFunction
MOVE.L D0,OldLocation
MOVEQ #-1,D0
SYS AllocSignal ;Allocate any signal.
MOVEQ #1,D1
LSL.L D0,D1
MOVE.L D1,D0
SYS Wait ;Wait for a signal that will never come.
ErrorOpeningReqBase
RTS
FileRequesterPatchFunction
; Here is where you adjust the file requester structure to suit your
; own particular tastes. Examples of things that you can safely adjust are
; the color fields (dirnamescolor, devicenamescolor etc.), the numcolumns
; and numlines fields. Most of the flags can safely be set from here, the
; exceptions being the EXTSELECT and CACHING flags, because if the calling
; program doesn't have the necessary code to deal with these (processing the
; extra files and purging buffers left by both flags) then some memory may
; not get freed up. These two flags can be safely cleared though, if you
; don't want extended select or caching. I believe all of the other flags
; can safely be set or cleared or set.
;If you like a particular width of file requester.
MOVE.W #20,frq_numcolumns(A0)
;If you want the cache to be purged whenever the directory
;modification date changes and if you don't want half read
;directories to get cached.
OR.L #FRQCACHEPURGEM!FRQNOHALFCACHEM,frq_Flags(A0)
MOVE.L OldLocation,A1
JMP (A1)